package com.miku.project.service;

import com.miku.mikuapicommon.model.entity.ProductOrder;
import com.miku.project.model.vo.ProductOrderVo;
import com.miku.project.model.vo.UserVO;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

public interface OrderService {
    /**
     * 根据支付类型创建订单
     * @param productId
     * @param payType
     * @param loginUser
     * @return
     */
    ProductOrderVo createOrderByPayType(Long productId, String payType, UserVO loginUser);


    /**
     * 按照付费类型获取产品订单服务
     * @param payType
     * @return
     */
    ProductOrderService getProductOrderServiceByPayType(String payType);

    /**
     * 处理订单通知结果
     * @param notifyDate
     * @param request
     * @return
     */
    String doOrderNotify(String notifyDate, HttpServletRequest request);

    /**
     * 按时间获得未支付订单
     * @param minutes 分钟
     * @param remove 是否要删除
     * @param payType 付款类型
     * @return
     */
    List<ProductOrder> getNoPayOrderByDuration(int minutes, Boolean remove, String payType);
}
